No C++, o Operador de Escopo (::) age como um GPS preciso, informando ao compilador exatamente qual namespace procurar. No entanto, digitar std:: repetidamente é como escrever seu nome completo toda vez que você fala. Usamos declarações using para criar sinônimos locais.
1. A Declaração Using
Uma using declaração nos permite acessar um nome de outro namespace sem o prefixo. Ela segue o formato: using nome_do_namespace::nome;. Cada declaração deve terminar com um ponto e vírgula. Uma vez declarado, o nome está no escopo desde o ponto da declaração até o final do escopo local (como um bloco de função) ou escopo global (nível do arquivo).
2. Higiene de Cabeçalhos e Guardas
Para suportar compilação separada, usamos Guardas de Cabeçalho. Esses evitam que o pré-processador inclua o mesmo arquivo várias vezes, o que causaria erros de "redefinição". Usando #ifndef (se não definido), #define, e #endif garante que um cabeçalho seja processado apenas uma vez.
#includeinclui, uma using declaração em um cabeçalho força esse nome para o escopo de todos os arquivos que o incluem, correndo o risco de colisões silenciosas de nomes.